Senior Embedded Firmware Engineer
Description
Enphase Energy is a global energy technology company and leading provider of solar, battery, and electric vehicle charging products. Founded in 2006, Enphase transformed the solar industry with our revolutionary microinverter technology, which turns sunlight into a safe, reliable, resilient, and scalable source of energy to power our lives. Today, the Enphase Energy System helps people make, use, save, and sell their own power. Enphase is also one of the fastest growing and innovative clean energy companies in the world, with approximately 68 million products installed across more than 145 countries.
We are building teams that are designing, developing, and manufacturing next-generation energy technologies and our work environment is fast-paced, fun and full of exciting new projects.
If you are passionate about advancing a more sustainable future, this is the perfect time to join Enphase!
About the role
Enphase is seeking a Senior Embedded Engineer to join our engineering and technology teams. This engineer will be responsible for firmware development for Enphase’s portable energy system products. This engineer will create intellectual property and demonstrate it with prototype designs. This engineer will transition work from conception to engineering to production, while collaborating with teams in Austin, Texas and Bangalore, India.
- Designing and implementing embedded software for real-time operation (free RTOS) and control.
- Simulating new algorithms for autonomous microgrid power flow management.
- Developing unit and system development and test software.
- Validating algorithms using system simulation tools.
- Working with hardware engineers to test and troubleshoot prototype designs.
- Firmware testing.
- Coordinate and seek guidance from Senior Engineers during execution
Who you are and what you bring:
- BE/MS/M.Tech/PhD Electrical Engineering or Computer Engineering or Computer Science
- BE and 5+ years / MS/M.Tech and 3+ years / PhD experience in a similar (non-academic) role as an embedded software or firmware engineer
- Expertise in C++, C, and Assembly for real-time applications.
- Expertise in both bare metal and small real-time operating systems
- Able to understand and implement digital signal processing (DSP) concepts in a microcontroller environment.
- Familiarity with 16-bit and 32-bit ARM Cortex-M4/7 architectures.
- Familiarity with ESP32 is a plus
- Familiarity with evaluating CPU versus hardware processing requirements and trade-offs for cost-effective designs.
- Ability to troubleshoot firmware related issues within complex systems.
- Ability to test code and hardware both with and without external test equipment such as oscilloscopes, power meters, etc.
- Familiarity with software development processes. E.g. Agile, Structured, Object Oriented, etc.
- Familiarity with development tools such as GCC, GDB, Eclipse, GNU Make, etc.
- Familiarity with software code management tools such as GITHub, Docker, BitBucket, Mercurial, etc.
- Ability to carry a design task from concept to implementation.
- Ability to document engineering requirements, document solutions, and test new firmware designs.
- STM32 Cortex-M family development experience
- FreeRTOS development experience
- AWS IoT experience
- Desktop and embedded Linux experience
- In depth knowledge of relevant worldwide standards such as IEEE 1547, 1741SA, CA Rule 21, UL2743, UL1998, and IEC62109 standards
- Familiarity with Lithium ion based Battery management systems development for safety, functionality and performance.
- Knowledge in worldwide electrical advanced grid functions and faults conditions
- In-depth familiarity with AC grid simulators and solar panel simulators
Work location:
- Bangalore - India